package com.shioirikukuri.mapper;

import com.shioirikukuri.entity.SpecialPrice;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface SpecialPriceMapper {

	/**
	 * 查询所有特殊价格
	 *
	 * @return 特殊价格列表
	 */
	@Select("SELECT * FROM special_price")
	List<SpecialPrice> selectAllSpecialPrices();

	/**
	 * 根据特殊价格ID查询特殊价格
	 *
	 * @param priceId 特殊价格ID
	 * @return 匹配的特殊价格对象
	 */
	@Select("SELECT * FROM special_price WHERE price_id = #{priceId}")
	SpecialPrice selectSpecialPriceById(@Param("priceId") Integer priceId);

	/**
	 * 插入新的特殊价格
	 *
	 * @param specialPrice 新特殊价格的信息
	 */
	@Insert("INSERT INTO special_price(price_ratio, description, start_time, end_time) " +
			"VALUES(#{priceRatio}, #{description}, #{startTime}, #{endTime})")
	@Options(useGeneratedKeys = true, keyProperty = "priceId")
	void insertSpecialPrice(SpecialPrice specialPrice);

	/**
	 * 更新已有特殊价格的信息
	 *
	 * @param specialPrice 需要更新的特殊价格信息
	 */
	@Update("UPDATE special_price SET price_ratio=#{priceRatio}, description=#{description}, " +
			"start_time=#{startTime}, end_time=#{endTime} WHERE price_id=#{priceId}")
	void updateSpecialPrice(SpecialPrice specialPrice);

	/**
	 * 删除指定ID的特殊价格
	 *
	 * @param priceId 特殊价格ID
	 */
	@Delete("DELETE FROM special_price WHERE price_id = #{priceId}")
	void deleteSpecialPriceById(@Param("priceId") Integer priceId);
}